home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / X11R4 / cmds / X / ddx / sprite.X11R3 / hdr / cg6fbc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1989-11-03  |  14.0 KB  |  493 lines

  1. /*
  2.  * @(#)cg6fbc.h 1.5 89/05/09 SMI
  3.  */
  4.  
  5. /*
  6.  * Copyright 1988-1989, Sun Microsystems, Inc.
  7.  */
  8.  
  9. #ifndef cg6fbc_h
  10. #define cg6fbc_h
  11.  
  12. /*
  13.  * CG6 register definitions, common to all environments.
  14.  */
  15.  
  16. /*
  17.  * FBC MISC register bits
  18.  */
  19. typedef enum {
  20.     L_FBC_MISC_BLIT_IGNORE, L_FBC_MISC_BLIT_NOSRC, L_FBC_MISC_BLIT_SRC,
  21.     L_FBC_MISC_BLIT_ILLEGAL
  22. } l_fbc_misc_blit_t;
  23.  
  24. typedef enum {
  25.     L_FBC_MISC_DATA_IGNORE, L_FBC_MISC_DATA_COLOR8, L_FBC_MISC_DATA_COLOR1,
  26.     L_FBC_MISC_DATA_HRMONO
  27. } l_fbc_misc_data_t;
  28.  
  29. typedef enum {
  30.     L_FBC_MISC_DRAW_IGNORE, L_FBC_MISC_DRAW_RENDER, L_FBC_MISC_DRAW_PICK,
  31.     L_FBC_MISC_DRAW_ILLEGAL
  32. } l_fbc_misc_draw_t;
  33.  
  34. typedef enum {
  35.     L_FBC_MISC_BWRITE0_IGNORE, L_FBC_MISC_BWRITE0_ENABLE,
  36.     L_FBC_MISC_BWRITE0_DISABLE, L_FBC_MISC_BWRITE0_ILLEGAL
  37. } l_fbc_misc_bwrite0_t;
  38.  
  39. typedef enum {
  40.     L_FBC_MISC_BWRITE1_IGNORE, L_FBC_MISC_BWRITE1_ENABLE,
  41.     L_FBC_MISC_BWRITE1_DISABLE, L_FBC_MISC_BWRITE1_ILLEGAL
  42. } l_fbc_misc_bwrite1_t;
  43.  
  44. typedef enum {
  45.     L_FBC_MISC_BREAD_IGNORE, L_FBC_MISC_BREAD_0, L_FBC_MISC_BREAD_1,
  46.     L_FBC_MISC_BREAD_ILLEGAL
  47. } l_fbc_misc_bread_t;
  48.  
  49. typedef enum {
  50.     L_FBC_MISC_BDISP_IGNORE, L_FBC_MISC_BDISP_0, L_FBC_MISC_BDISP_1,
  51.     L_FBC_MISC_BDISP_ILLEGAL
  52. } l_fbc_misc_bdisp_t;
  53.  
  54. struct l_fbc_misc {
  55.     unsigned    : 10;            /* not used */
  56.     l_fbc_misc_blit_t    l_fbc_misc_blit : 2;    /* blit src check */
  57.     unsigned    l_fbc_misc_vblank : 1;    /* 1 == VBLANK has occured */
  58.     l_fbc_misc_data_t    l_fbc_misc_data : 2;    /* Color mode select  */
  59.     l_fbc_misc_draw_t    l_fbc_misc_draw : 2;    /* Render/Pick mode  */
  60.     l_fbc_misc_bwrite0_t    l_fbc_misc_bwrite0 : 2;    /* buffer 0 write */
  61.     l_fbc_misc_bwrite1_t    l_fbc_misc_bwrite1 : 2;    /* buffer 1 write */
  62.     l_fbc_misc_bread_t    l_fbc_misc_bread : 2;    /* read enable      */
  63.     l_fbc_misc_bdisp_t    l_fbc_misc_bdisp : 2;    /* display enable  */
  64.     unsigned    l_fbc_misc_index_mod : 1;    /* modify index  */
  65.     unsigned    l_fbc_misc_index : 2;        /* index      */
  66.     unsigned    : 4;                /* not used */
  67. };
  68.  
  69. /*
  70.  * FBC RASTEROP register bits
  71.  */
  72. typedef enum {
  73.     L_FBC_RASTEROP_PLANE_IGNORE, L_FBC_RASTEROP_PLANE_ZEROES,
  74.     L_FBC_RASTEROP_PLANE_ONES, L_FBC_RASTEROP_PLANE_MASK,
  75. } l_fbc_rasterop_plane_t;
  76.  
  77. typedef enum {
  78.     L_FBC_RASTEROP_PIXEL_IGNORE, L_FBC_RASTEROP_PIXEL_ZEROES,
  79.     L_FBC_RASTEROP_PIXEL_ONES, L_FBC_RASTEROP_PIXEL_MASK
  80. } l_fbc_rasterop_pixel_t;
  81.  
  82. typedef enum {
  83.     L_FBC_RASTEROP_PATTERN_IGNORE, L_FBC_RASTEROP_PATTERN_ZEROES,
  84.     L_FBC_RASTEROP_PATTERN_ONES, L_FBC_RASTEROP_PATTERN_MASK
  85. } l_fbc_rasterop_patt_t;
  86.  
  87. typedef enum {
  88.     L_FBC_RASTEROP_POLYG_IGNORE, L_FBC_RASTEROP_POLYG_OVERLAP,
  89.     L_FBC_RASTEROP_POLYG_NONOVERLAP, L_FBC_RASTEROP_POLYG_ILLEGAL
  90. } l_fbc_rasterop_polyg_t;
  91.  
  92. typedef enum {
  93.     L_FBC_RASTEROP_ATTR_IGNORE, L_FBC_RASTEROP_ATTR_UNSUPP,
  94.     L_FBC_RASTEROP_ATTR_SUPP, L_FBC_RASTEROP_ATTR_ILLEGAL
  95. } l_fbc_rasterop_attr_t;
  96.  
  97. typedef enum {
  98.     L_FBC_RASTEROP_RAST_BOOL, L_FBC_RASTEROP_RAST_LINEAR
  99. } l_fbc_rasterop_rast_t;
  100.  
  101. typedef enum {
  102.     L_FBC_RASTEROP_PLOT_PLOT, L_FBC_RASTEROP_PLOT_UNPLOT
  103. } l_fbc_rasterop_plot_t;
  104.  
  105. struct l_fbc_rasterop {
  106.     l_fbc_rasterop_plane_t    l_fbc_rasterop_plane : 2; /* plane mask */
  107.     l_fbc_rasterop_pixel_t    l_fbc_rasterop_pixel : 2; /* pixel mask */
  108.     l_fbc_rasterop_patt_t    l_fbc_rasterop_patt : 2;  /* pattern mask */
  109.     l_fbc_rasterop_polyg_t    l_fbc_rasterop_polyg : 2; /* polygon draw */
  110.     l_fbc_rasterop_attr_t    l_fbc_rasterop_attr : 2;  /* attribute select */
  111.     unsigned    : 4;                  /* not used */
  112.     l_fbc_rasterop_rast_t    l_fbc_rasterop_rast : 1;  /* rasterop mode */
  113.     l_fbc_rasterop_plot_t    l_fbc_rasterop_plot : 1;  /* plot/unplot mode */
  114.     unsigned    l_fbc_rasterop_rop11: 4; /* rasterop for f==1, b==1 */
  115.     unsigned    l_fbc_rasterop_rop10: 4; /* rasterop for f==1, b==0 */
  116.     unsigned    l_fbc_rasterop_rop01: 4; /* rasterop for f==0, b==1 */
  117.     unsigned    l_fbc_rasterop_rop00: 4; /* rasterop for f==0, b==0 */
  118. };
  119.  
  120. /*
  121.  * FBC PATTALIGN register bits
  122.  */
  123. union l_fbc_pattalign {
  124.     unsigned word;
  125.     unsigned short l_fbc_pattalign_array[2];
  126. #define    l_fbc_pattalign_alignx    l_fbc_pattalign_array[0]
  127. #define    l_fbc_pattalign_aligny    l_fbc_pattalign_array[1]
  128. };
  129.  
  130. /*
  131.  * FBC offsets &  structure definition
  132.  */
  133. struct fbc {
  134.  
  135. /* miscellaneous & clipcheck registers */
  136.  
  137.     char            fil0[ 0x4 ];
  138.  
  139.     struct    l_fbc_misc    l_fbc_misc;
  140.     u_int            l_fbc_clipcheck;
  141.  
  142. #define L_FBC_MISC        ( 0x004 / sizeof(int) )
  143. #define L_FBC_CLIPCHECK        ( 0x008 / sizeof(int) )
  144.  
  145.     char            fill00[ 0x10 - 0x08 - 4 ];
  146.  
  147.     u_int            l_fbc_status;
  148.     u_int            l_fbc_drawstatus;
  149.     u_int            l_fbc_blitstatus;
  150.     u_int            l_fbc_font;
  151.     
  152. /* status and command registers */
  153. #define L_FBC_STATUS        ( 0x010 / sizeof(int) )
  154. #define L_FBC_DRAWSTATUS    ( 0x014 / sizeof(int) )
  155. #define L_FBC_BLITSTATUS    ( 0x018 / sizeof(int) )
  156. #define L_FBC_FONT        ( 0x01C / sizeof(int) )
  157.  
  158.     char            fill01[ 0x80 - 0x1C - 4 ];
  159.  
  160.     u_int            l_fbc_x0;
  161.     u_int            l_fbc_y0;
  162.     u_int            l_fbc_z0;
  163.     u_int            l_fbc_color0;
  164.     u_int            l_fbc_x1;
  165.     u_int            l_fbc_y1;
  166.     u_int            l_fbc_z1;
  167.     u_int            l_fbc_color1;
  168.     u_int            l_fbc_x2;
  169.     u_int            l_fbc_y2;
  170.     u_int            l_fbc_z2;
  171.     u_int            l_fbc_color2;
  172.     u_int            l_fbc_x3;
  173.     u_int            l_fbc_y3;
  174.     u_int            l_fbc_z3;
  175.     u_int            l_fbc_color3;
  176.  
  177. /* address registers */
  178. /* writing a z-register just sets the corresponding z clip status bits */
  179. #define L_FBC_X0        ( 0x080 / sizeof(int) )
  180. #define L_FBC_Y0        ( 0x084 / sizeof(int) )
  181. #define L_FBC_Z0        ( 0x088 / sizeof(int) )
  182. #define L_FBC_COLOR0        ( 0x08C / sizeof(int) )
  183. #define L_FBC_X1        ( 0x090 / sizeof(int) )
  184. #define L_FBC_Y1        ( 0x094 / sizeof(int) )
  185. #define L_FBC_Z1        ( 0x098 / sizeof(int) )
  186. #define L_FBC_COLOR1        ( 0x09C / sizeof(int) )
  187. #define L_FBC_X2        ( 0x0A0 / sizeof(int) )
  188. #define L_FBC_Y2        ( 0x0A4 / sizeof(int) )
  189. #define L_FBC_Z2        ( 0x0A8 / sizeof(int) )
  190. #define L_FBC_COLOR2        ( 0x0AC / sizeof(int) )
  191. #define L_FBC_X3        ( 0x0B0 / sizeof(int) )
  192. #define L_FBC_Y3        ( 0x0B4 / sizeof(int) )
  193. #define L_FBC_Z3        ( 0x0B8 / sizeof(int) )
  194. #define L_FBC_COLOR3        ( 0x0BC / sizeof(int) )
  195.  
  196. /* raster offset registers */
  197.  
  198.     u_int            l_fbc_rasteroffx;
  199.     u_int            l_fbc_rasteroffy;
  200.  
  201. #define L_FBC_RASTEROFFX    ( 0x0C0 / sizeof(int) )
  202. #define L_FBC_RASTEROFFY    ( 0x0C4 / sizeof(int) )
  203.  
  204.     char            fill02[ 0xD0 - 0xC4 - 4 ];
  205.  
  206.     u_int            l_fbc_autoincx;
  207.     u_int            l_fbc_autoincy;
  208.  
  209. /* autoincrement registers */
  210. #define L_FBC_AUTOINCX        ( 0x0D0 / sizeof(int) )
  211. #define L_FBC_AUTOINCY        ( 0x0D4 / sizeof(int) )
  212.  
  213.  
  214. /* window registers */
  215.  
  216.     char            fill03[ 0xE0 - 0xD4 - 4 ];
  217.  
  218.     u_int            l_fbc_clipminx;
  219.     u_int            l_fbc_clipminy;
  220.  
  221. #define L_FBC_CLIPMINX        ( 0x0E0 / sizeof(int) )
  222. #define L_FBC_CLIPMINY        ( 0x0E4 / sizeof(int) )
  223.  
  224.     char            fill04[ 0xF0 - 0xE4 - 4 ];
  225.  
  226.     u_int            l_fbc_clipmaxx;
  227.     u_int            l_fbc_clipmaxy;
  228.  
  229. #define L_FBC_CLIPMAXX        ( 0x0F0 / sizeof(int) )
  230. #define L_FBC_CLIPMAXY        ( 0x0F4 / sizeof(int) )
  231.  
  232.     char            fill05[ 0x100 - 0x0F4 - 4 ];
  233.  
  234.     u_int            l_fbc_fcolor;
  235.     u_int            l_fbc_bcolor;
  236.     struct l_fbc_rasterop    l_fbc_rasterop;
  237.     u_int            l_fbc_planemask;
  238.     u_int            l_fbc_pixelmask;
  239.  
  240. /* attribute registers */
  241. #define L_FBC_FCOLOR        ( 0x100 / sizeof(int) )
  242. #define L_FBC_BCOLOR        ( 0x104 / sizeof(int) )
  243. #define L_FBC_RASTEROP        ( 0x108 / sizeof(int) )
  244. #define L_FBC_PLANEMASK        ( 0x10C / sizeof(int) )
  245. #define L_FBC_PIXELMASK        ( 0x110 / sizeof(int) )
  246.  
  247.     char             fill06[ 0x11C - 0x110 - 4 ];
  248.  
  249.     union l_fbc_pattalign    l_fbc_pattalign;
  250.  
  251. #define L_FBC_PATTALIGN        ( 0x11C / sizeof(int) )
  252.  
  253.     u_int            l_fbc_pattern0;
  254.     u_int            l_fbc_pattern1;
  255.     u_int            l_fbc_pattern2;
  256.     u_int            l_fbc_pattern3;
  257.     u_int            l_fbc_pattern4;
  258.     u_int            l_fbc_pattern5;
  259.     u_int            l_fbc_pattern6;
  260.     u_int            l_fbc_pattern7;
  261.  
  262. #define L_FBC_PATTERN0        ( 0x120 / sizeof(int) )
  263. #define L_FBC_PATTERN1        ( 0x124 / sizeof(int) )
  264. #define L_FBC_PATTERN2        ( 0x128 / sizeof(int) )
  265. #define L_FBC_PATTERN3        ( 0x12C / sizeof(int) )
  266. #define L_FBC_PATTERN4        ( 0x130 / sizeof(int) )
  267. #define L_FBC_PATTERN5        ( 0x134 / sizeof(int) )
  268. #define L_FBC_PATTERN6        ( 0x138 / sizeof(int) )
  269. #define L_FBC_PATTERN7        ( 0x13C / sizeof(int) )
  270.  
  271. /* indexed address registers */
  272.  
  273.     char            fill07[ 0x800 - 0x13C - 4 ];
  274.  
  275.     u_int             l_fbc_ipointabsx;
  276.     u_int             l_fbc_ipointabsy;
  277.     u_int             l_fbc_ipointabsz;
  278.  
  279. #define L_FBC_IPOINTABSX    ( 0x800 / sizeof(int) )
  280. #define L_FBC_IPOINTABSY    ( 0x804 / sizeof(int) )
  281. #define L_FBC_IPOINTABSZ    ( 0x808 / sizeof(int) )
  282.  
  283.     char             fill08[ 0x810 - 0x808 - 4 ];
  284.  
  285.     u_int             l_fbc_ipointrelx;
  286.     u_int             l_fbc_ipointrely;
  287.     u_int             l_fbc_ipointrelz;
  288.  
  289. #define L_FBC_IPOINTRELX    ( 0x810 / sizeof(int) )
  290. #define L_FBC_IPOINTRELY    ( 0x814 / sizeof(int) )
  291. #define L_FBC_IPOINTRELZ    ( 0x818 / sizeof(int) )
  292.  
  293.     char            fill09[ 0x830 - 0x818 - 4 ];
  294.  
  295.     u_int            l_fbc_ipointcolr;
  296.     u_int            l_fbc_ipointcolg;
  297.     u_int            l_fbc_ipointcolb;
  298.     u_int            l_fbc_ipointcola;
  299.     u_int            l_fbc_ilineabsx;
  300.     u_int            l_fbc_ilineabsy;
  301.     u_int            l_fbc_ilineabsz;
  302.  
  303. #define L_FBC_IPOINTCOLR    ( 0x830 / sizeof(int) )
  304. #define L_FBC_IPOINTCOLG    ( 0x834 / sizeof(int) )
  305. #define L_FBC_IPOINTCOLB    ( 0x838 / sizeof(int) )
  306. #define L_FBC_IPOINTCOLA    ( 0x83C / sizeof(int) )
  307. #define L_FBC_ILINEABSX        ( 0x840 / sizeof(int) )
  308. #define L_FBC_ILINEABSY        ( 0x844 / sizeof(int) )
  309. #define L_FBC_ILINEABSZ        ( 0x848 / sizeof(int) )
  310.  
  311.     char            fill10[ 0x850 - 0x848 - 4 ];
  312.  
  313.     u_int            l_fbc_ilinerelx;
  314.     u_int            l_fbc_ilinerely;
  315.     u_int            l_fbc_ilinerelz;
  316.  
  317. #define L_FBC_ILINERELX        ( 0x850 / sizeof(int) )
  318. #define L_FBC_ILINERELY        ( 0x854 / sizeof(int) )
  319. #define L_FBC_ILINERELZ        ( 0x858 / sizeof(int) )
  320.  
  321.     char            fill11[ 0x870 - 0x858 - 4 ];
  322.  
  323.     u_int            l_fbc_ilinecolr;
  324.     u_int            l_fbc_ilinecolg;
  325.     u_int            l_fbc_ilinecolb;
  326.     u_int            l_fbc_ilinecola;
  327.  
  328. #define L_FBC_ILINECOLR        ( 0x870 / sizeof(int) )
  329. #define L_FBC_ILINECOLG        ( 0x874 / sizeof(int) )
  330. #define L_FBC_ILINECOLB        ( 0x878 / sizeof(int) )
  331. #define L_FBC_ILINECOLA        ( 0x87C / sizeof(int) )
  332.  
  333.     u_int            l_fbc_itriabsx;
  334.     u_int            l_fbc_itriabsy;
  335.     u_int            l_fbc_itriabsz;
  336.  
  337. #define L_FBC_ITRIABSX        ( 0x880 / sizeof(int) )
  338. #define L_FBC_ITRIABSY        ( 0x884 / sizeof(int) )
  339. #define L_FBC_ITRIABSZ        ( 0x888 / sizeof(int) )
  340.  
  341.     char            fill12[ 0x890 - 0x888 - 4 ];
  342.  
  343.     u_int            l_fbc_itrirelx;
  344.     u_int            l_fbc_itrirely;
  345.     u_int            l_fbc_itrirelz;
  346.  
  347. #define L_FBC_ITRIRELX        ( 0x890 / sizeof(int) )
  348. #define L_FBC_ITRIRELY        ( 0x894 / sizeof(int) )
  349. #define L_FBC_ITRIRELZ        ( 0x898 / sizeof(int) )
  350.  
  351.     char            fill13[ 0x8B0 - 0x898 - 4 ];
  352.  
  353.     u_int            l_fbc_itricolr;
  354.     u_int            l_fbc_itricolg;
  355.     u_int            l_fbc_itricolb;
  356.     u_int            l_fbc_itricola;
  357.     u_int            l_fbc_iquadabsx;
  358.     u_int            l_fbc_iquadabsy;
  359.     u_int            l_fbc_iquadabsz;
  360.  
  361. #define L_FBC_ITRICOLR        ( 0x8B0 / sizeof(int) )
  362. #define L_FBC_ITRICOLG        ( 0x8B4 / sizeof(int) )
  363. #define L_FBC_ITRICOLB        ( 0x8B8 / sizeof(int) )
  364. #define L_FBC_ITRICOLA        ( 0x8BC / sizeof(int) )
  365. #define L_FBC_IQUADABSX        ( 0x8C0 / sizeof(int) )
  366. #define L_FBC_IQUADABSY        ( 0x8C4 / sizeof(int) )
  367. #define L_FBC_IQUADABSZ        ( 0x8C8 / sizeof(int) )
  368.  
  369.     char            fill14[ 0x8D0 - 0x8C8 - 4 ];
  370.  
  371.     u_int            l_fbc_iquadrelx;
  372.     u_int            l_fbc_iquadrely;
  373.     u_int            l_fbc_iquadrelz;
  374.  
  375. #define L_FBC_IQUADRELX        ( 0x8D0 / sizeof(int) )
  376. #define L_FBC_IQUADRELY        ( 0x8D4 / sizeof(int) )
  377. #define L_FBC_IQUADRELZ        ( 0x8D8 / sizeof(int) )
  378.  
  379.     char            fill15[ 0x8F0 - 0x8D8 - 4 ];
  380.  
  381.     u_int            l_fbc_iquadcolr;
  382.     u_int            l_fbc_iquadcolg;
  383.     u_int            l_fbc_iquadcolb;
  384.     u_int            l_fbc_iquadcola;
  385.     u_int            l_fbc_irectabsx;
  386.     u_int            l_fbc_irectabsy;
  387.     u_int            l_fbc_irectabsz;
  388.  
  389. #define L_FBC_IQUADCOLR        ( 0x8F0 / sizeof(int) )
  390. #define L_FBC_IQUADCOLG        ( 0x8F4 / sizeof(int) )
  391. #define L_FBC_IQUADCOLB        ( 0x8F8 / sizeof(int) )
  392. #define L_FBC_IQUADCOLA        ( 0x8FC / sizeof(int) )
  393. #define L_FBC_IRECTABSX        ( 0x900 / sizeof(int) )
  394. #define L_FBC_IRECTABSY        ( 0x904 / sizeof(int) )
  395. #define L_FBC_IRECTABSZ        ( 0x908 / sizeof(int) )
  396.  
  397.     char            fill17[ 0x910 - 0x908 - 4 ];
  398.  
  399.     u_int            l_fbc_irectrelx;
  400.     u_int            l_fbc_irectrely;
  401.     u_int            l_fbc_irectrelz;
  402.  
  403. #define L_FBC_IRECTRELX        ( 0x910 / sizeof(int) )
  404. #define L_FBC_IRECTRELY        ( 0x914 / sizeof(int) )
  405. #define L_FBC_IRECTRELZ        ( 0x918 / sizeof(int) )
  406.  
  407.     char            fill18[ 0x930 - 0x918 - 4 ];
  408.  
  409.     u_int            l_fbc_irectcolr;
  410.     u_int            l_fbc_irectcolg;
  411.     u_int            l_fbc_irectcolb;
  412.     u_int            l_fbc_irectcola;
  413.  
  414. #define L_FBC_IRECTCOLR        ( 0x930 / sizeof(int) )
  415. #define L_FBC_IRECTCOLG        ( 0x934 / sizeof(int) )
  416. #define L_FBC_IRECTCOLB        ( 0x938 / sizeof(int) )
  417. #define L_FBC_IRECTCOLA        ( 0x93C / sizeof(int) )
  418.  
  419. };
  420.  
  421. /*
  422.  * FBC CLIPCHECK register bits.
  423.  */
  424. #define CLIP_MASK    0x3
  425. #define CLIP_IN        0x0
  426. #define CLIP_LT        0x1
  427. #define CLIP_GT        0x2
  428. #define CLIP_BACK    0x3
  429.  
  430. #define CLIP_X(bits, reg_num)    ((bits) << (0+(2*(reg_num))))
  431. #define CLIP_Y(bits, reg_num)    ((bits) << (8+(2*(reg_num))))
  432. #define CLIP_Z(bits, reg_num)    ((bits) << (16+(2*(reg_num))))
  433.  
  434. /*
  435.  * FBC STATUS, DRAWSTATUS, and BLITSTATUS register bits.
  436.  */
  437. #define L_FBC_ACC_CLEAR        0x80000000    /* when writing STATUS */
  438. #define L_FBC_DRAW_EXCEPTION    0x80000000    /* when reading DRAWSTATUS */
  439. #define L_FBC_BLIT_EXCEPTION    0x80000000    /* when reading BLITSTATUS */
  440. #define L_FBC_TEC_EXCEPTION    0x40000000
  441. #define L_FBC_FULL        0x20000000
  442. #define L_FBC_BUSY        0x10000000
  443. #define L_FBC_UNSUPPORTED_ATTR    0x02000000
  444. #define L_FBC_HRMONO        0x01000000
  445. #define L_FBC_ACC_OVERFLOW    0x00200000
  446. #define L_FBC_ACC_PICK        0x00100000
  447. #define L_FBC_TEC_HIDDEN    0x00040000
  448. #define L_FBC_TEC_INTERSECT    0x00020000
  449. #define L_FBC_TEC_VISIBLE    0x00010000
  450. #define L_FBC_BLIT_HARDWARE    0x00008000
  451. #define L_FBC_BLIT_SOFTWARE    0x00004000
  452. #define L_FBC_BLIT_SRC_HID    0x00002000
  453. #define L_FBC_BLIT_SRC_INT    0x00001000
  454. #define L_FBC_BLIT_SRC_VIS    0x00000800
  455. #define L_FBC_BLIT_DST_HID    0x00000400
  456. #define L_FBC_BLIT_DST_INT    0x00000200
  457. #define L_FBC_BLIT_DST_VIS    0x00000100
  458. #define L_FBC_DRAW_HARDWARE    0x00000010
  459. #define L_FBC_DRAW_SOFTWARE    0x00000008
  460. #define L_FBC_DRAW_HIDDEN    0x00000004
  461. #define L_FBC_DRAW_INTERSECT    0x00000002
  462. #define L_FBC_DRAW_VISIBLE    0x00000001
  463.  
  464. /*
  465.  * FBC/FHC CONFIG register
  466.  */
  467. #define    FHC_CONFIG_FBID_SHIFT        24
  468. #define    FHC_CONFIG_FBID_MASK        255
  469. #define    FHC_CONFIG_REV_SHIFT        20
  470. #define    FHC_CONFIG_REV_MASK        15
  471. #define    FHC_CONFIG_FROP_DISABLE        (1 << 19)
  472. #define    FHC_CONFIG_ROW_DISABLE        (1 << 18)
  473. #define    FHC_CONFIG_SRC_DISABLE        (1 << 17)
  474. #define    FHC_CONFIG_DST_DISABLE        (1 << 16)
  475. #define    FHC_CONFIG_RESET        (1 << 15)
  476. #define    FHC_CONFIG_LITTLE_ENDIAN    (1 << 13)
  477. #define    FHC_CONFIG_RES_MASK        (3 << 11)
  478. #define    FHC_CONFIG_1024            (0 << 11)
  479. #define    FHC_CONFIG_1152            (1 << 11)
  480. #define    FHC_CONFIG_1280            (2 << 11)
  481. #define    FHC_CONFIG_1600            (3 << 11)
  482. #define    FHC_CONFIG_CPU_MASK        (3 << 9)
  483. #define    FHC_CONFIG_CPU_SPARC        (0 << 9)
  484. #define    FHC_CONFIG_CPU_68020        (1 << 9)
  485. #define    FHC_CONFIG_CPU_386        (2 << 9)
  486. #define    FHC_CONFIG_TEST            (1 << 8)
  487. #define    FHC_CONFIG_TESTX_SHIFT        4
  488. #define    FHC_CONFIG_TESTX_MASK        (15 << 4)
  489. #define    FHC_CONFIG_TESTY_SHIFT        0
  490. #define    FHC_CONFIG_TESTY_MASK        15
  491.  
  492. #endif cg6fbc_h
  493.